<?php

// $Id$

require_once($WSC->get_site_inc_dir().'modules/tangra_cms/classes/nomenclature/tcms_nomenclature_value_dbc.class.php');
require_once($WSC->get_site_inc_dir().'modules/tangra_cms/classes/nomenclature/tcms_nomenclature_dbc.class.php');
require_once($WSC->get_site_inc_dir().'modules/tangra_cms/classes/ci/ci_attr_types/tcms_cia_nomenclature_dbc.class.php');
require_once($WSC->get_site_inc_dir().'modules/tangra_cms/classes/ci/tcms_ci_attr_type_dbc.class.php');


class TCMS_Nomenclature_Value_Deleter extends Tangra_Class {
	public static function delete(DB_Connection $dbc, $id, $hidden_inc_dir, $current_user_id) {
		$nomenclature_value = new TCMS_Nomenclature_Value_DBC();
		if (!$nomenclature_value->load_by_id($dbc, $id)) {
			throw new Tangra_Module_Exception('Cannot load TCMS_Nomenclature_Value_DBC with id = '.$id);
		}

		$nomenclature = new TCMS_Nomenclature_DBC();
		if (!$nomenclature->load_by_id($dbc, $nomenclature_value->get_nomenclature())) {
			throw new Tangra_Module_Exception('Cannot load TCMS_Nomenclature_DBC with id = '.$nomenclature_value->get_nomenclature());
		}

		$nomenclature_type = new TCMS_CI_Attr_Type_DBC();
		if (!$nomenclature_type->load_by_hid($dbc, 'nomenclature')) {
			throw new Tangra_Module_Exception('Cannot load TCMS_CI_Attr_Type_DBC with hid = "nomenclature"');
		}


		$sql = "select cia_nom.id ".
					"from tcms_ci_type_attrs cita, tcms_cia_nomenclature cia_nom ".
					"where cita.attr_type = {$nomenclature_type->get_id()} and ".
							"cita.params = '{$nomenclature->get_hid()}' and ".
							"cia_nom.ci_type_attr = cita.id and ".
							"cia_nom.value = $id";
		$rez = $dbc->execute($sql);
		while ($rez_obj = $rez->fetch_object()) {
			$cia_nom = new TCMS_CIA_Nomenclature_DBC();
			$cia_nom->delete($dbc, $rez_obj->ID);
		}

		TCMS_Nomenclature_Value_DBC::delete($dbc, $id);
	}
}
